layui.use(['table','layer'],function(){
    var layer = parent.layer === undefined ? layui.layer : top.layer,
        $ = layui.jquery,
        table = layui.table;

    /**
     * 加载数据表格
     */
    var tableIns = table.render({
        id:"saleChanceTable",//用于头部工具栏删除的id
        elem: '#saleChanceList' //容器元素的id属性值
        ,height: 'full-125' //容器的高度 full-差值
        ,cellMinWidth: 95 //单元格最小宽度
        ,url: ctx + '/sale_chance/list'//访问数据的URL(后台的数据接口)
        ,page: true //开启分页
        ,limit: 10 //默认每页显示的条数
        ,limits: [10,20,30,40,50] //分页每页数据可选项
        ,toolbar:'#toolbarDemo' // 开启头部工具栏
        ,cols: [[
            // field：要求field属性值与返回的数据中对应的属性字段名一致
            // title：设置列的标题
            // sort：是否允许排序（默认：false）
            // fixed：固定列
            {type:'checkbox', fixed:'center'}
            ,{field: 'id', title: '编号',  sort: true, fixed: 'left'}
            ,{field: 'chanceSource', title: '机会来源', align:'center'}
            ,{field: 'customerName', title: '客户名称', align:'center'}
            ,{field: 'cgjl', title: '成功几率', align:'center'}
            ,{field: 'overview', title: '概要', align:'center'}
            ,{field: 'linkMan', title: '联系人', align:'center'}
            ,{field: 'linkPhone', title: '联系号码', align:'center'}
            ,{field: 'description', title: '机会描述', align:'center'}
            ,{field: 'createMan', title: '创建人', align:'center'}
            ,{field: 'uname', title: '分配人', align:'center'}
            ,{field: 'assignTime', title: '分配时间', align:'center'}
            ,{field: 'createDate', title: '创建时间', align:'center'}
            ,{field: 'updateDate', title: '修改时间', align:'center'}
            ,{field: 'state', title: '分配状态', align:'center',templet: function (d) {
                    //调用函数，返回格式化的结果
                    return formatState(d.state);
                }}
            ,{field: 'devResult', title: '开发状态', align:'center',templet: function (d) {
                    //调用函数，返回格式化的结果
                    return formatDevResult(d.devResult);
                }}
            ,{title:'操作',templet:'#saleChanceListBar', fixed: 'right', align:'center', minWidth:150}
        ]]
    });

    /**
     * 格式化分配状态值
     * 未分配: 0
     * 已分配: 1
     * 未知: other
     * @param state
     * @returns {string}
     */
    function formatState(state) {
        if (state === 0){
            return "<div style='color: gold'>未分配</div>"
        }else if (state === 1){
            return "<div style='color: green'>已分配</div>"
        }else {
            return "<div style='color: red'>未知</div>"
        }
    }

    /**
     * 格式化开发状态
     * 未开发: 0
     * 开发中: 1
     * 开发成功: 2
     * 开发失败: 3
     * 未知: other
     * @param devResult
     */
    function formatDevResult(devResult) {
        if (devResult === 0){
             return "<div style='color: gold'>未开发</div>";
        }else if (devResult === 1){
            return "<div style='color: orange'>开发中</div>";
        }else if (devResult === 2){
            return "<div style='color: green'>开发成功</div>";
        }else if(devResult === 3){
            return "<div style='color: red'>开发失败</div>";
        }else {
            return "<div style='color: blue'>未知</div>";
        }
    }

    /**
     * 搜索按钮的点击事件
     */
    $(".search_btn").click(function () {
        /**
         * 表格重载
         *    多条件查询
         */
        tableIns.reload({
            //设置需要传递给后端的参数
            where: { //设定异步数据接口的额外参数，任意设
                customerName: $("[name='customerName']").val() //客户名
                ,createMan: $("[name='createMan']").val() //创建人
                ,state: $("#state").val() //状态
            }
            ,page: {
                curr: 1 //重新从第 1 页开始
            }
        });
    });


    /**
     * 监听头部工具栏
     */
    table.on('toolbar(saleChances)',function (data) {
        // console.log(data);
        if (data.event === "add"){
            //添加操作
            openSaleChanceDialog();
        }else if (data.event === "del"){
            //删除操作
            deleteSaleChance(data);
        }
    });

    /**
     * 打开添加/修改营销机会数据的窗口
     *    如果saleChanceId为空则为添加操作
     *    如果saleChanceId不为空则为修改操作
     */
    function openSaleChanceDialog(saleChanceId) {
        //弹出层的标题
        var title = "<h2>营销机会管理 - 添加营销机会</h2>";
        var url =ctx + "/sale_chance/toSaleChancePage";

        if (saleChanceId != null && saleChanceId !== ''){
            title = "<h2>营销机会管理 - 更新营销机会</h2>";
            //请求地址传递营销机会的Id
            url += "?saleChanceId=" + saleChanceId;
        }

        //iframe层
        layui.layer.open({
            type: 2, //类型
            title: title,  //标题
            area: ['500px','600px'],  //宽高
            content: url,  //url地址
            maxmin: true   //可以最大化可最小化
        });
    }

    /**
     * 删除营销机会(删除多条记录，在头工具栏)
     * @param data
     */
    function deleteSaleChance(data){
        //获取数据表格中的行数据
        var checkStatus = table.checkStatus("saleChanceTable");
        // 获取所有被选中的记录对应的数据
        var saleChanceData = checkStatus.data;

        //判断用户是否选择了数据(选中行的数量大于0)
        if (saleChanceData.length < 1){
            layer.msg("请选择要删除的记录！",{icon:5});
        }

        //询问用户是否删除
        layer.confirm('您确定要删除选中的记录吗?',{icon:3,title:"营销机会管理"},function (index) {
            //关闭询问框
            layer.close(index);
            //定义一个数组用于传递ids(多个id)
            var ids = "ids=";
            for (var i = 0;i < saleChanceData.length;i++){
                if (i < saleChanceData.length - 1){  //说明还没有取到最后一个id
                    ids +=  saleChanceData[i].id + "&ids=";
                }else {
                    ids += saleChanceData[i].id;
                }
            }
            console.log(ids);

            $.ajax({
                type:"post",
                url: ctx + "/sale_chance/delete",
                data: ids,
                success:function (result) {
                    //判断删除结果
                    if (result.code === 200){
                        //提示成功
                        layer.msg("删除成功！",{icon: 6});
                        //刷新表格
                        tableIns.reload();
                    }else {
                        //提示失败
                        layer.msg("待删除的记录不存在！",{icon: 5});
                    }
                }
            })
        });
    }

    /**
     * 监听行工具栏(监听编辑或删除)
     */
    table.on('tool(saleChances)',function (data) {
        //判断类型
        if (data.event === "edit"){ // 编辑
            //得到营销机会的ID
            var saleChanceId = data.data.id;
            //调用方法打开窗口(将saleChanceId传过去以打开对应id信息的窗口)
            openSaleChanceDialog(saleChanceId)

        }else if (data.event === "del"){// 删除
            //弹出确认框询问用户是否确认删除
            layer.confirm('确定要删除该记录吗?',{icon:3,title:"营销机会管理"},function (index) {
                //关闭确认框
                layer.close(index);

                //发送ajax请求删除记录
                $.ajax({
                    type:"post",
                    url: ctx + "/sale_chance/delete",
                    data: {ids: data.data.id},
                    success:function (result) {
                        //判断删除结果
                        if (result.code === 200){
                            //提示成功
                            layer.msg("删除成功！",{icon: 6});
                            //刷新表格
                            tableIns.reload();
                        }else {
                            //提示失败
                            layer.msg(result.msg,{icon: 5});
                        }
                    }
                })
            });
        }
    });
    
});
